package com.pn.mapper;

import com.pn.entity.Product;
import com.pn.page.Page;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 商品管理 分页查询实体Mapper 层接口
 */
@Mapper
public interface ProductMapper {
    /**
     * @param product 接受商品实体类
     * @return 返回查询商品总行数
     */
    public int selectProductCount(Product product);

    /**
     * @param page    分页实体
     * @param product 接收商品实体类
     * @return 分页查询结果
     */
    public List<Product> selectProductPage(@Param("page") Page page,
                                           @Param("product") Product product);

    /**
     * @param product 商品实体类
     * @return 返回商品添加结果布尔值
     */
    public int insertProduct(Product product);

    /**
     * 根据商品id修改上下架转态
     *
     * @param product 商品实体类
     * @return 返回上下架状态
     */
    public int updateStatById(Product product);

    /**
     * 根据商品id删除商品的方法
     *
     * @param productId 商品ID
     * @return 删除结果
     */
    public int deleteProductById(Integer productId);

    /**
     * 根据ID 修改商品
     *
     * @param product
     * @return
     */
    public int updateProductById(Product product);

}
